home *** CD-ROM | disk | FTP | other *** search
- Release of CWEBx3.0, another implementation of CWEB
- ===================================================
-
- After several versions with beta status, CWEBx is now officially released as
- version CWEBx3.0. The system is available at
-
- ftp://ftp.cwi.nl/pub/cweb
-
- and will hopefully also be available soon at the Literate Programming Archive
- (ftp://ftp.th-darmstadt.de/pub/programming/literate-programming/c.c++) and
- at the CTAN sites. An earlier version was released last year under the name
- `CWEB 3.x'. With respect to that version the main changes are improved
- compatibility with Levy/Knuth CWEB, and greater reliability. All extras that
- were added in Levy/Knuth CWEB have been incorporated, and a compatibility
- mode is added in which the external behaviour of Levy/Knuth CWEB is
- simulated exactly. The main version number `3' now indicates compatibility
- with the corresponding major version of Levy/Knuth CWEB, which was not the
- case for CWEB 3.x. (The minor version numbers of Levy/Knuth CWEB only involve
- bug fixes that are usually not relevant to CWEBx; all bugs that are repaired
- in Levy/Knuth CWEB 3.3, and many that are not, are absent in CWEBx3.0). A
- few new features have also been added, mainly to increase flexibility of use.
-
- As a reminder, here is a summary of the new aspects that were already
- present in CWEB 3.x.
-
- - The effect of typedef declarations on formatting extends over the complete
- source text, rather then starting at the declaration itself.
- - A control code for inclusion of header files, which causes any typedef
- declarations in the header file to be taken into account in formatting.
- - A mechanism for referring to section numbers using symbolic labels.
- - A control code to start a section without allowing a page break.
- - A control code to denote the bitwise-or operator `|' within `|...|'.
- - A control code to force a negative indentation by one unit on a line.
- - The size of an indentation can be controlled by a parameter.
- - A defaulting mechanism on command line to use change file if it is present.
- - CTANGLE matches parentheses and braces in macros and modules bodies.
- - Several layout styles may be selected from the command line.
- - Irreducible scrap sequences can be shown without changing the source files.
- - Automatic breaking of long expressions using precedence rules.
- - New and modular set of grammar rules, based directly on the ANSI C syntax.
- - Syntax category of module names can be controlled; default is statement.
- - A completely new manual, with a one-page table of all control codes.
-
- - CWEB programs are system independent, no change files needed.
- - Organisation of programs is much more C-like, using ordinary header files
- for communication between compilation units.
- - Documentation of source code is improved, programs are more literate.
-
- The following features are the main additions made since CWEB 3.x
-
- - Control codes @s, @q, @l, @h, from Levy/Knuth CWEB.
- - Relaxation of the rules, e.g. for module names, as in Levy/Knuth CWEB.
- - Compatibility mode with Levy/Knuth CWEB.
- - Possibility to send index and module names to separate files.
- - Possibility to get human-oriented output from CTANGLE, omitting #line,
- but retaining comments and indentation.
- - Possibility to specify search path for header files on command line.
- - Possibility to indicate that a typedef identifier is used as an ordinary
- one, e.g., as a field in a structure.
- - Possibility to treat short compound statments as simple ones in formatting.
- - An improved and even more complete manual (now 32 pages).
-
- Marc van Leeuwen
- CWI, Amsterdam
-